﻿using System;

namespace Bricks.Logging
{

    /// <summary>
    /// 
    /// </summary>
    /// <typeparam name="TLogger"></typeparam>
    public abstract class LoggerFacadeBase<TLogger> : FacadeBase<TLogger>, ILoggerFacade<TLogger>
    {

        /// <summary>
        /// 
        /// </summary>
        /// <param name="loggerAccessor"></param>
        protected LoggerFacadeBase(Func<TLogger> loggerAccessor) :
            base(loggerAccessor)
        {
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="message"></param>
        public abstract void Debug(object message);

        /// <summary>
        /// 
        /// </summary>
        /// <param name="message"></param>
        public abstract void Error(object message);

        /// <summary>
        /// 
        /// </summary>
        /// <param name="message"></param>
        public abstract void Fatal(object message);

        /// <summary>
        /// 
        /// </summary>
        /// <param name="message"></param>
        public abstract void Info(object message);

        /// <summary>
        /// 
        /// </summary>
        /// <param name="message"></param>
        public abstract void Warn(object message);
    }
}
